#include "uart.h"

#define FOSC 12000000L          //系统频率
#define BAUD 4800             //串口波特率


char rxbuf[20];
unsigned char rxcnt = 0;
unsigned char rxstat = 0;

//串口初始化
void uartInit(void)
{
	SCON = 0x50;		//8位数据,可变波特率
	AUXR |= 0x40;		//定时器1时钟为Fosc,即1T
	AUXR &= 0xFE;		//串口1选择定时器1为波特率发生器
	TMOD &= 0x0F;		//设定定时器1为16位自动重装方式
	TL1 = 0x8F;			//设定定时初值
	TH1 = 0xFD;			//设定定时初值
	ET1 = 0;			//禁止定时器1中断
	TR1 = 1;			//启动定时器1

	ES = 1;
}

//串口发送函数
void uartSendString(char *str)
{
	while(*str != 0)
	{
		SBUF = *str;
		while(TI == 0);
		TI = 0;
		str++;

	}
}

//串口中断服务函数
void uartISR(void) interrupt 4 using 1
{
    if (RI){

		rxstat = 1;

		RI = 0;
		rxbuf[rxcnt] = SBUF;	//缓存数据

		if(++rxcnt == 20){
			rxcnt = 0;
		}
    }
}




